package server.business.service;

import server.business.pojo.BloodStock;
import com.baomidou.mybatisplus.extension.service.IService;

import com.baomidou.mybatisplus.core.metadata.IPage;

import java.sql.Timestamp;
import java.util.List;
import java.util.Map;

/**
* @author Galaxy
* @description 针对表【blood_stock】的数据库操作Service
* @createDate 2022-11-08 12:46:24
*/
public interface BloodStockService extends IService<BloodStock> {

    /**
     * 查看所有的血液库存
     * @param
     * @return 更新状态后的所有血液库存
     */
    IPage<BloodStock> listBlood(int currentPage, int pageSize, BloodStock user);
    /**
     * 血型筛选血液库存
     * @param abo,String,except
     * @return 特定血型的所有血液库存
     */
    List<BloodStock> listBloodAboRh(String abo ,String rh,String except);
    /**
     * 状态筛选血液库存
     * @param
     * @return 筛选是否过期的所有血液库存
     */
    IPage<BloodStock> listBloodUseful(int currentPage, int pageSize,String bloodCon);
    /**
     * 血液库存统计分析
     * @param
     * @return 统计各类型未过期血液数量
     */
    List<Map<String, Object>> getVarityNumber();
    /**
     * 血液库存搜索
     * @param
     * @return 指定ID的血液库存
     */
    List<BloodStock> listBloodAlone(String blooId);
    /**
     * 血液入量和失效量统计查询
     * @param
     * @return 各种血液入量和失效量
     */
    List<Map<String, Object>> getBloodInReport(Timestamp startTime, Timestamp endTime);
    /**
     * 血液出量查询
     * @param
     * @return 各种血液出量
     */
    List<Map<String, Object>> getBloodFailReport(Timestamp startTime, Timestamp endTime);

    List<Map<String, Object>> getBloodOutReport(List<Map<String, Object>> bloodIdList);
}
